<template>
  <div ref="main" style="width: 700px; height: 450px"></div>
</template>

<script lang="ts" setup>
//  按需引入 echarts
import * as echarts from "echarts";
import { propTypes } from "@/utils/propTypes";
const main = ref() // 使用ref创建虚拟DOM引用，使用时用main.value
onMounted(
  () => {
    init()
    console.log("line",props.lineData);
    console.log("bar",props.barData);
  }
)
const props = defineProps({
  legend: Array,
  lineData: Array,
  barData: Array,
  xAxis: Array,
  title: propTypes.string,
});
function init() {
  // 基于准备好的dom，初始化echarts实例
  const myChart = echarts.init(main.value);
  // 指定图表的配置项和数据
  const option = {
    title: {
      text: props.title
    },
    tooltip: {
      trigger: 'axis',
      axisPointer: {
        type: 'cross',
        crossStyle: {
          color: '#999'
        }
      }
    },
    toolbox: {
      feature: {
        dataView: { show: true, readOnly: false },
        magicType: { show: true, type: ['line', 'bar'] },
        restore: { show: true },
        saveAsImage: { show: true }
      }
    },
    legend: {
      data: ['预测值（柱状）', '预测值（线性）']
    },
    xAxis: [
      {
        type: 'category',
        data: props.xAxis,
        axisPointer: {
          type: 'shadow'
        }
      }
    ],
    yAxis: {
      type: 'value'
    },
    series: [
      {
        name: '预测值（柱状）',
        type: 'bar',
        tooltip: {
          valueFormatter: function (value) {
            return value + ' ml';
          }
        },
        data: props.barData
      },
      {
        name: '预测值（线性）',
        type: 'line',
        tooltip: {
          valueFormatter: function (value) {
            return value + ' ml';
          }
        },
        data: props.lineData
      }
    ]
  };
  // 使用刚指定的配置项和数据显示图表。
  myChart.setOption(option);
}
</script>

<style scoped>
/* 这里可以添加样式 */
</style>
